The de Bruijn principle and the compositional design of programming languages
نویسنده
چکیده
Component-oriented development can be applied to programing languages themselves. The typical structure of languages’ semantic definitions using natural deduction rules lends itself to modularisation schemes in which the rules describing an individual language feature set may be composed freely with those of other feature sets without interference. We describe initial work on a system that encapsulates this approach to language design, which can generate language tools and their associated proof systems by composing descriptions of feature sets. The intention is to modularise the development and proof processes and encourage the population of an open set of interoperable and re-composable
منابع مشابه
A de Bruijn notation for higher - order rewriting ( Extended
We propose a formalism for higher-order rewriting in de Bruijn notation. This notation not only is used for terms (as usually done in the literature) but also for metaterms, which are the syntactical objects used to express general higher-order rewrite systems. We give formal translations from higher-order rewriting with names to higher-order rewriting with de Bruijn indices, and vice-versa. Th...
متن کاملA Comparison between Concrete Representations for Bindings
Many representations of term syntax with variable bindings have been used to formalize programming language metatheory, but so far there is no clear consensus on which is the best representation. We have undertaken an exhaustive comparison between concrete representations, among which are: names, nominal, de Bruijn indices, de Bruijn levels, locally nameless, and their variations. In the contex...
متن کاملA de Bruijn Notation for Higher-Order Rewriting
We propose a formalism for higher-order rewriting in de Bruijn notation. This notation not only is used for terms (as usually done in the literature) but also for metaterms, which are the syntactical objects used to express general higher-order rewrite systems. We give formal translations from higher-order rewriting with names to higher-order rewriting with de Bruijn indices, and vice-versa. Th...
متن کاملUsing {red as a Teaching Tool for Functional Programming and Program Execution
This paper describes an interactively controlled reduction system {red which may be employed to teach both basic concepts of functional programming and program execution at the undergraduate level, and advanced topics of computer science at the graduate level. {red supports the reduction languages KiR-a sugared versions of an applied {calculus with a full-edged (type-free)-reduction. Functions ...
متن کاملOn Explicit Substitutions and Names ( Extended
Calculi with explicit substitutions have found widespread acceptance as a basis for abstract machines for functional languages. In this paper we investigate the relations between variants with de Bruijn-numbers, with variable names, with reduction based on raw expressions and calculi with equational judgements. We show the equivalence between these variants, which is crucial in establishing the...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2005